// components/public/common.js
import {
    empty,
    session,
    getOpenId,
} from './../../utils/helper';
import {
    setUserInfo
} from './../../services/common';

//获取应用实例
const app = getApp();
//实例化本地缓存
const cookie = new session();

Component({
    options: {
        multipleSlots: true // 在组件定义时的选项中启用多slot支持
    },
    /**
     * 组件的属性列表
     */
    properties: {
        // 这里定义了data属性，属性值可以在组件使用时指定
        data: {
            type: Object,
            value: {},
        }
    },

    /**
     * 组件的初始数据
     */
    data: {
        //是否授权
        author: true,
        //自定义弹层提示框按钮状态
        disabled: false,
        //自定义弹层
        shouquan: true,
        //自定义弹层提示框
        shouquan_center: false,
        //自定义弹层提示框欢迎语
        welcome: "等了好久终于遇见你",
        // 这里是一些组件内部数据
        someData: {}
    },

    // 生命周期函数，可以为函数，或一个在methods段中定义的方法名
    attached: function(e) { // 此处attached的声明会被lifetimes字段中的声明覆盖
        const visits = cookie.get('visits');
        let that = this;
        //查询是否授权
        wx.getSetting({
            success(res) {
                if (!res.authSetting['scope.userInfo']) {
                    if (!visits) {
                        //第一次访问小程序未授权弹出欢迎语
                        that.setData({
                            shouquan: false,
                        });
                    } else {
                        //拒绝授权后再次访问小程序弹出蒙版层
                        that.setData({
                            author: false,
                        });
                    }
                } else {
                    //已授权的更新数据库用户信息
                    // wx.getUserInfo({
                    //     success: e => {
                    //         console.log(e); 
                    //     }
                    // });
                }
            }
        })
    },

    /**
     * 组件的方法列表
     */
    methods: {
        // 这里是一个自定义方法
        customMethod: function() {},
        // 弹出微信官方授权窗后,关闭自定义弹窗
        onTap: function(e) {
            this.setData({
                shouquan: true,
                shouquan_center: true,
            });
        },
        // 拒绝授权后,蒙版层事件
        welcome: function() {
            this.setData({
                author: true,
                shouquan: false,
                shouquan_center: false,
                welcome: '授权才能访问哦'
            });
        },
        // 微信官方授权窗事件
        onGotUserInfo: function(e) {
            //同意授权
            if (e.detail.errMsg == 'getUserInfo:ok') {
                let params = Object.assign(e.detail.userInfo, {
                        openid: app.globalData.openid
                    }),
                    that = this;
                that.setData({
                    disabled: true,
                });
                //成功授权后用户信息上传服务器
                setUserInfo(params, function(res) {
                    if (typeof res == 'object') {
                        if (res.status != 'OK') {
                            message(res.msg);
                        }
                    }
                    that.setData({
                        disabled: false,
                    });
                });
            } else { //拒绝授权
                this.setData({
                    author: false,
                });
            }
            //记录访问小程序次数
            const visits = cookie.get('visits');
            if (visits) {
                cookie.set('visits', Number(visits) + 1);
            } else {
                cookie.set('visits', 1);
            }
        }
    }
})